package com.example.kotlinstudy.dataclass

import com.alibaba.fastjson.JSONObject

/***
 * 数据类： 是用来专门存放数据的类
 */

//数据类提供了toString, equal ,hashcode ,等多个的个性化实现  可以方便复制对象
data class TestDataClass(var x: Int, var y: Int) {
    val isInBounds = x > 0 && y > 0  //数据类里面还可以再写变量
}

class TestDataClass1() {
    var x: String? = null
    var y: String? = null
}


fun main() {
    println(TestDataClass(10, 100))  //重写的toString
    // ===比较引用   ==比较内容 equals (而data数据类，重写了)
    println(TestDataClass(10, 100) == TestDataClass(10, 100))  //比较

    val content = "{\"x\":10 ,\"y \":  20}"
    val parseObject = JSONObject.parseObject(
        content,
        TestDataClass::class.java
    )
    //fastjson还不支持数据类 报错 需要添加  implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
    //val parseObject = Gson().fromJson(content, TestDataClass::class.java)
    println(parseObject.x)

    //////////////
    val parseObject1 = JSONObject.parseObject(content, TestDataClass1::class.java)
    println(parseObject1.x)

}

